﻿using appABM.Models;
using AppABM.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace appABM.Controllers
{
    public class MateriaController : Controller
    {
        private ContextoDatos db = new ContextoDatos();
        //
        // GET: /Materia/

        public ActionResult Index()
        {
            return View(db.Materias.ToList());
        }

        [HttpGet]
        public ActionResult Alta() 
        {
            Materia materia = new Materia();
            return View(model: materia);
        }

        [HttpPost]
        public ActionResult Alta(string nombre) 
        {
            Materia materia = new Materia();
            materia.Nombre = nombre;

            if (ValidarDatos(nombre))
            {
                db.Materias.Add(materia); 
                db.SaveChanges(); 
                return RedirectToAction("Index","Materia"); 
            }
            ViewBag.Error = true; // Alguno de los campos fue incorrecto y no se pudo cargar correctamente, el nuevo alumno.
            return View("Alta", model: materia); // Se devuelen los datos del alumno a la vista del index.
        }

        public ActionResult Baja(long id) 
        {
            Materia materia = db.Materias.Find(id);
            db.Materias.Remove(materia);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        [HttpGet]
        public ActionResult Modificar(long id) 
        {
            Materia materia = db.Materias.Find(id);
            return View(model: materia);
        }

        [HttpPost]
        public ActionResult Modificar(string nombre, long id)
        {
            Materia materia = db.Materias.Find(id);
            materia.Nombre = nombre;
            if (ValidarDatos(nombre))
            {
                db.SaveChanges();
                return RedirectToAction("Index", "Materia");
            }
            ViewBag.Error = true; // Alguno de los campos fue incorrecto y no se pudo modificar correctamente el nuevo alumno.
            return View("Modificar", model: materia); // Se devuelen los datos del alumno a la vista de modificacion.
        }

        // Metodo para validar los datos
        public bool ValidarDatos(string nombre) 
        {
            if (!(string.IsNullOrWhiteSpace(nombre)))
            {
                return true;
            }
            else return false;
        }
    }
}
